957bf7acaadabc2bb7f7cf2f8edc7cfc99351bda,modules/siddhi-core/src/main/java/org/wso2/siddhi/core/util/parser/helper/QueryParserHelper.java,QueryParserHelper,reduceStreamAttributes,#MetaStreamEvent#,73
Before Change
* @param metaStreamEvent MetaStreamEvent
*/
private static synchronized void reduceStreamAttributes(MetaStreamEvent metaStreamEvent) {
for (Attribute attribute : metaStreamEvent.getOutputData()) {
if (metaStreamEvent.getBeforeWindowData().contains(attribute)) {
metaStreamEvent.getBeforeWindowData().remove(attribute);
}
if (metaStreamEvent.getOnAfterWindowData().contains(attribute)) {
metaStreamEvent.getOnAfterWindowData().remove(attribute);
}
}
for (Attribute attribute : metaStreamEvent.getOnAfterWindowData()) {
if (metaStreamEvent.getBeforeWindowData().contains(attribute)) {
metaStreamEvent.getBeforeWindowData().remove(attribute);
}
After Change
* @param metaStreamEvent MetaStreamEvent
*/
private static synchronized void reduceStreamAttributes(MetaStreamEvent metaStreamEvent) {
Set<Attribute> duplicateFinder = new HashSet<Attribute>();
for (Iterator<Attribute> iterator = metaStreamEvent.getOutputData().iterator(); iterator.hasNext(); ) {
Attribute attribute = iterator.next();
if (attribute != null) {
if (duplicateFinder.add(attribute)) {
if (metaStreamEvent.getBeforeWindowData().contains(attribute)) {
metaStreamEvent.getBeforeWindowData().remove(attribute);
}
if (metaStreamEvent.getOnAfterWindowData().contains(attribute)) {
metaStreamEvent.getOnAfterWindowData().remove(attribute);
}
} else {
iterator.remove();
}
}
}
duplicateFinder = new HashSet<Attribute>();
for (Iterator<Attribute> iterator = metaStreamEvent.getOnAfterWindowData().iterator(); iterator.hasNext(); ) {
Attribute attribute = iterator.next();
if (attribute != null) {
if (duplicateFinder.add(attribute)) {
if (metaStreamEvent.getBeforeWindowData().contains(attribute)) {
metaStreamEvent.getBeforeWindowData().remove(attribute);
}
} else {
iterator.remove();
}
}
}
for (Iterator<Attribute> iterator = metaStreamEvent.getBeforeWindowData().iterator(); iterator.hasNext(); ) {
Attribute attribute = iterator.next();
if (attribute != null) {
if (!duplicateFinder.add(attribute)) {
iterator.remove();
}
}
}